import axios from 'axios'
import config from '../config'
import {ElMessage} from 'element-plus'

const NETWORK_ERROR = '网络请求异常，请稍后尝试...'
const service = axios.create({
    baseURL:config.baseApi
})
//在请求之前做一些事件
service.interceptors.request.use((req)=>{
    //可以自定义header
    //jwt-token认证的时候
    return req
})
service.interceptors.response.use((res)=>{
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    //console.log(res,'request.js');
    const {code,data,msg} = res.data
    if(code === 200){
        return data
    }else{
        ElMessage.error(msg || NETWORK_ERROR)
        return Promise.reject(msg || NETWORK_ERROR)
    }
})

function request(options){
    options.method = options.method || 'get'
    if(options.method.toLowerCase() === 'get'){
        options.params = options.data
    }
    
    let isMock = config.mock
    if(typeof options.mock !== 'undefined'){
        isMock = options.mock
    }
    
    if(config.env === 'prod'){
        service.defaults.baseURL = config.baseApi
    }else{
        service.defaults.baseURL = isMock ? config.mockApi : config.baseApi
    }
    //console.log(options,'options');
    return service(options)
}
export default request
